python常用库之工具库schema(数据验证、数据转换、数据清洗)

您所在的位置:网站首页 Python 数据校验 python常用库之工具库schema(数据验证、数据转换、数据清洗)

python常用库之工具库schema(数据验证、数据转换、数据清洗)

2024-07-08 00:36| 来源: 网络整理| 查看: 265

文章目录 python常用库之工具库schema(数据验证、数据转换、数据清洗) schema安装和使用 使用场景

python常用库之工具库schema(数据验证、数据转换、数据清洗)

schema 模块是一个 Python 库,用于对数据进行验证和处理。它提供了一组简单但强大的工具,可以帮助你验证和转换数据,以确保数据的正确性和一致性。

具体来说,schema 模块可以用于以下几个方面:

数据验证:schema 可以验证数据是否符合特定的规范。例如,你可以使用 schema 来验证一个字符串是否为有效的电子邮件地址,或者验证一个数字是否在特定的范围内。数据转换:schema 可以将数据从一种格式转换为另一种格式。例如,你可以使用 schema 将一个字符串转换为日期格式,或者将一个整数转换为浮点数。数据清洗:schema 可以对数据进行清洗和过滤。例如,你可以使用 schema 去除字符串中的空格,或者将一个列表中的重复项删除。

总之,schema 是一个非常有用的工具,可以帮助你验证、转换和清洗数据,让你的代码更加健壮和可靠。

schema安装和使用

pip install schema

表单验证 from schema import Schema, And, Use # 定义表单数据的 Schema form_schema = Schema({ 'name': And(str, len), 'email': And(str, len, str.lower, lambda s: '@' in s), 'phone': And(str, len, Use(int)) }) # 在 Flask 应用程序中使用表单数据的 Schema 进行验证 @app.route('/submit-form', methods=['POST']) def submit_form(): form_data = request.form.to_dict() try: validated_data = form_schema.validate(form_data) except Exception as e: return f'Bad Request: {e}' # 处理提交的表单数据 ... REST API 输入验证 from schema import Schema, And # 定义输入数据的 Schema input_schema = Schema({ 'username': And(str, len, lambda s: not s.startswith('admin')), 'password': And(str, len) }) # 在 Flask 应用程序中使用输入数据的 Schema 进行验证 @app.route('/api/login', methods=['POST']) def api_login(): input_data = request.json try: validated_data = input_schema.validate(input_data) except Exception as e: return jsonify({'error': str(e)}), 400 # 处理登录操作 ... 数据序列化 from schema import Schema, Optional # 定义数据的 Schema data_schema = Schema({ 'id': int, 'name': str, Optional('description'): str }) # 将 JSON 数据转换为 Dict,并进行验证 json_data = '{"id": 1, "name": "Product One", "description": "This is a product."}' data_dict = data_schema.validate(json.loads(json_data)) # 将 Dict 数据转换为 JSON 字符串,并进行验证 data_dict = {'id': 2, 'name': 'Product Two'} json_data = json.dumps(data_schema.validate(data_dict)) 数据清洗和转换 from schema import Schema, And, Or, Regex # 定义数据的 Schema,并同时执行清洗和转换操作 data_schema = Schema({ 'name': And(str, lambda s: s.strip().title()), 'email': And(str, lambda s: s.strip().lower(), Regex(r'^[a-z0-9._]+@[a-z0-9._]+\.[a-z]{2,}$')), 'phone': Or(None, And(str, lambda s: s.strip(), Regex(r'^\d{11}$'))), 'gender': Or('male', 'female', 'other', None) }) # 清洗和转换示例 input_data = { 'name': ' john DOE ', 'email': ' [email protected] ', 'phone': ' 12345678900 ', 'gender': '' } cleaned_data = data_schema.validate(input_data) # cleaned_data = {'name': 'John Doe', 'email': '[email protected]', 'phone': '12345678900', 'gender': None} 使用场景 表单验证:在 Web 应用程序中,用户提交的表单数据需要经过验证后才能被接受。使用 schema 库可以轻松验证表单数据是否符合要求,例如是否必填、是否为有效的邮箱地址等。REST API 输入验证:在构建 RESTful API 时,输入数据也需要经过验证,以确保数据的正确性和安全性。使用 schema 库可以定义输入数据的 Schema 并对其进行校验,防止恶意攻击和非法数据的输入。数据序列化:在将数据从一个格式转换为另一个格式时,需要对数据进行序列化和反序列化操作。使用 schema 库可以定义数据的 Schema,并将数据转换为指定的格式,例如 JSON、XML 等。数据清洗和转换:在处理数据时,有时需要对数据进行清洗和转换操作,例如去除空格、转换日期格式等。使用 schema 库可以定义数据的 Schema,并使用验证器执行清洗和转换操作。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3